home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 0767 / winsock.inc < prev   
Text File  |  1995-05-18  |  10KB  |  395 lines

  1. { Winsock.h file for Borland Pascal
  2.   Conversion by Marc B. Manza
  3.              Center for Applied Large-Scale Computing
  4.   Requires Winsock.pas and Winsock.inc
  5.   Send any comments/change requests/etc. to:
  6.   manza@flash.poly.edu
  7. }
  8. {
  9.   Modified by Mike Caughran Cedar Island Software Nov 1994
  10.   Changed references to SOCKET to tSOCKET
  11.   added INADDR_ANY
  12.   added PInteger
  13. }
  14.  
  15. type
  16.     u_char = char;
  17.     u_short = word; { byte ?? }
  18.     u_int = word;
  19.     u_long = longint;
  20.  
  21.     TSock = u_int;
  22.  
  23. const
  24.     FD_SETSIZE     =   64;
  25.  
  26. type
  27.     fd_set = record
  28.         fd_count : u_short;
  29.         fd_array : array[0..FD_SETSIZE-1] of TSock;
  30.     end;
  31.  
  32.     timeval = record
  33.         tv_sec, tv_usec : longint;
  34.     end;
  35.  
  36. const
  37.     IOCPARM_MASK   =   $007f;
  38.     IOC_VOID       =   $20000000;
  39.     IOC_OUT        =   $40000000;
  40.     IOC_IN         =   $80000000;
  41.     IOC_INOUT      =   (IOC_IN OR IOC_OUT);
  42.  
  43. type
  44.     PPchar = ^PChar;
  45.  
  46.     hostent = record
  47.         h_name : PChar;
  48.         h_aliases : PPChar;
  49.         h_addrtype : integer;
  50.         h_length : integer;
  51.         h_addr_list : PPChar;
  52.      {    h_addr : PChar; }
  53.     end;
  54.  
  55.     netent = record
  56.         n_name : PChar;
  57.         n_aliases : ^PChar;
  58.         n_addrtype : integer;
  59.         n_net : u_long;
  60.     end;
  61.  
  62.     servent = record
  63.         s_name : PChar;
  64.         s_aliases : ^PChar;
  65.         s_port : integer;
  66.         s_proto : PChar;
  67.     end;
  68.  
  69.     protoent = record
  70.         p_name : PChar;
  71.         p_aliases : ^Pchar;
  72.         p_proto : integer;
  73.     end;
  74.  
  75. const
  76.     IPPROTO_IP     =   0;
  77.     IPPROTO_ICMP   =   1;
  78.     IPPROTO_GGP    =   2;
  79.     IPPROTO_TCP    =   6;
  80.     IPPROTO_PUP    =   12;
  81.     IPPROTO_UDP    =   17;
  82.     IPPROTO_IDP    =   22;
  83.     IPPROTO_ND     =   77;
  84.  
  85.     IPPROTO_RAW    =   255;
  86.     IPPROTO_MAX    =   256;
  87.  
  88.     IPPORT_ECHO    =   7;
  89.     IPPORT_DISCARD =   9;
  90.     IPPORT_SYSTAT  =   11;
  91.     IPPORT_DAYTIME =   13;
  92.     IPPORT_NETSTAT =   15;
  93.     IPPORT_FTP     =   21;
  94.     IPPORT_TELNET  =   23;
  95.     IPPORT_SMTP    =   25;
  96.     IPPORT_TIMESERVER  =  37;
  97.     IPPORT_NAMESERVER  =  42;
  98.     IPPORT_WHOIS       =  43;
  99.     IPPORT_MTP         =  57;
  100.  
  101.     IPPORT_TFTP        =  69;
  102.     IPPORT_RJE         =  77;
  103.     IPPORT_FINGER      =  79;
  104.     IPPORT_TTYLINK     =  87;
  105.     IPPORT_SUPDUP      =  95;
  106.  
  107.     IPPORT_EXECSERVER  =  512;
  108.     IPPORT_LOGINSERVER =  513;
  109.     IPPORT_CMDSERVER   =  514;
  110.     IPPORT_EFSSERVER   =  520;
  111.  
  112.     IPPORT_BIFFUDP     =  512;
  113.     IPPORT_WHOSERVER   =  513;
  114.     IPPORT_ROUTESERVER =  520;
  115.  
  116.     IPPORT_RESERVED    =  1024;
  117.  
  118.     IMPLINK_IP         =  155;
  119.     IMPLINK_LOWEXPER   =  156;
  120.     IMPLINK_HIGHEXPER  =  158;
  121.  
  122. Type
  123.     SunB = record
  124.         s_b1, s_b2, s_b3, s_b4 : u_char;
  125.     end;
  126.  
  127.     SunW = record
  128.         s_w1, s_w2 : u_short;
  129.     end;
  130.  
  131.     in_addr = record
  132.         case integer of
  133.             0 : (S_un_b : SunB);
  134.             1 : (S_un_w : SunW);
  135.             2 : (S_addr : u_long);
  136.         end;
  137.  
  138. var
  139.     S_un : in_addr;
  140.  
  141. type
  142.     sockaddr_in = record
  143.         sin_family : integer;
  144.         sin_port : u_short;
  145.         sin_addr : in_addr;
  146.         sin_zero : array[0..7] of char;
  147.     end;
  148.  
  149. const
  150.     WSADESCRIPTION_LEN     =   256;
  151.     WSASYS_STATUS_LEN      =   128;
  152.  
  153. type
  154.     LPWSADATA = ^WSAData;
  155.     WSAData = record
  156.         wVersion : word;
  157.         wHighVersion : word;
  158.         szDescription : array[0..WSADESCRIPTION_LEN] of char;
  159.         szSystemStatus : array[0..WSASYS_STATUS_LEN] of char;
  160.         iMaxSockets : integer;
  161.         iMaxUdpDg : integer;
  162.         lpVendorInfo : PChar;
  163.     end;
  164.  
  165. const
  166.     IP_OPTIONS                = 1;
  167.     INADDR_ANY                = 0;
  168.     INADDR_LOOPBACK        = $7f000001;
  169.     INADDR_BROADCAST    = $ffffffff;
  170.     INADDR_NONE                = $ffffffff;
  171.  
  172.     INVALID_SOCKET        = TSock(NOT(0));
  173.     SOCKET_ERROR            =    -1;
  174.  
  175.     SOCK_STREAM    =   1;
  176.     SOCK_DGRAM     =   2;
  177.     SOCK_RAW       =   3;
  178.     SOCK_RDM       =   4;
  179.     SOCK_SEQPACKET =   5;
  180.  
  181.     SO_DEBUG       =   $0001;
  182.     SO_ACCEPTCONN  =   $0002;
  183.     SO_REUSEADDR   =   $0004;
  184.     SO_KEEPALIVE   =   $0008;
  185.     SO_DONTROUTE   =   $0010;
  186.     SO_BROADCAST   =   $0020;
  187.     SO_USELOOPBACK =   $0040;
  188.     SO_LINGER      =   $0080;
  189.     SO_OOBINLINE   =   $0100;
  190.  
  191.     SO_DONTLINGER  =   $ff7f;
  192.  
  193.     SO_SNDBUF      =   $1001;
  194.     SO_RCVBUF      =   $1002;
  195.     SO_SNDLOWAT    =   $1003;
  196.     SO_RCVLOWAT    =   $1004;
  197.     SO_SNDTIMEO    =   $1005;
  198.     SO_RCVTIMEO    =   $1006;
  199.     SO_ERROR       =   $1007;
  200.     SO_TYPE        =   $1008;
  201.  
  202.     AF_UNSPEC      =   0;
  203.     AF_UNIX        =   1;
  204.     AF_INET        =   2;
  205.     AF_IMPLINK     =   3;
  206.     AF_PUP         =   4;
  207.     AF_CHAOS       =   5;
  208.     AF_NS          =   6;
  209.     AF_NBS         =   7;
  210.     AF_ECMA        =   8;
  211.     AF_DATAKIT     =   9;
  212.     AF_CCITT       =   10;
  213.     AF_SNA         =   11;
  214.     AF_DECnet      =   12;
  215.     AF_DLI         =   13;
  216.     AF_LAT         =   14;
  217.     AF_HYLINK      =   15;
  218.     AF_APPLETALK   =   16;
  219.  
  220.     AF_MAX         =   17;
  221.  
  222. type
  223.     sockaddr = record
  224.         sa_family : u_short;
  225.         sa_data : array[0..13] of char; { should be 0..13 ?}
  226.     end;
  227.  
  228.     sockproto = record
  229.         sp_family : u_short;
  230.         sp_protocol : u_short;
  231.     end;
  232.  
  233. const
  234.     PF_UNSPEC      =   AF_UNSPEC;
  235.     PF_UNIX        =   AF_UNIX;
  236.     PF_INET        =   AF_INET;
  237.     PF_IMPLINK     =   AF_IMPLINK;
  238.     PF_PUP         =   AF_PUP;
  239.     PF_CHAOS       =   AF_CHAOS;
  240.     PF_NS          =   AF_NS;
  241.     PF_NBS         =   AF_NBS;
  242.     PF_ECMA        =   AF_ECMA;
  243.     PF_DATAKIT     =   AF_DATAKIT;
  244.     PF_CCITT       =   AF_CCITT;
  245.     PF_SNA         =   AF_SNA;
  246.     PF_DECnet      =   AF_DECnet;
  247.     PF_DLI         =   AF_DLI;
  248.     PF_LAT         =   AF_LAT;
  249.     PF_HYLINK      =   AF_HYLINK;
  250.     PF_APPLETALK   =   AF_APPLETALK;
  251.  
  252.     PF_MAX         =   AF_MAX;
  253.  
  254. type
  255.     linger = record
  256.         l_onoff : u_short;
  257.         l_linger : u_short;
  258.     end;
  259.  
  260. const
  261.     SOL_SOCKET     =   $ffff;
  262.  
  263.     SOMAXCONN      =   5;
  264.  
  265.     MSG_OOB        =   $1;
  266.     MSG_PEEK       =   $2;
  267.     MSG_DONTROUTE  =   $4;
  268.  
  269.     MSG_MAXIOVLEN  =   16;
  270.  
  271.     MAXGETHOSTSTRUCT   =  1024;
  272.  
  273.     FD_READ            =  $01;
  274.     FD_WRITE           =  $02;
  275.     FD_OOB             =  $04;
  276.     FD_ACCEPT          =  $08;
  277.     FD_CONNECT         =  $10;
  278.     FD_CLOSE           =  $20;
  279.  
  280.  
  281.     WSABASEERR         =  10000;
  282.  
  283.     WSAEINTR           =  (WSABASEERR + 4);
  284.     WSAEBADF           =  (WSABASEERR + 9);
  285.     WSAEFAULT          =  (WSABASEERR + 14);
  286.     WSAEINVAL          =  (WSABASEERR + 22);
  287.     WSAEMFILE          =  (WSABASEERR + 24);
  288.  
  289.     WSAEWOULDBLOCK     =  (WSABASEERR + 35);
  290.     WSAEINPROGRESS     =  (WSABASEERR + 36);
  291.     WSAEALREADY        =  (WSABASEERR + 37);
  292.     WSAENOTSOCK        =  (WSABASEERR + 38);
  293.     WSAEDESTADDRREQ    =  (WSABASEERR + 39);
  294.     WSAEMSGSIZE        =  (WSABASEERR + 40);
  295.     WSAEPROTOTYPE      =  (WSABASEERR + 41);
  296.     WSAENOPROTOOPT     =  (WSABASEERR + 42);
  297.     WSAEPROTONOSUPPORT =  (WSABASEERR + 43);
  298.     WSAESOCKTNOSUPPORT  =  (WSABASEERR + 44);
  299.     WSAEOPNOTSUPP      =  (WSABASEERR + 45);
  300.     WSAEPFNOSUPPORT    =  (WSABASEERR + 46);
  301.     WSAEAFNOSUPPORT    =  (WSABASEERR + 47);
  302.     WSAEADDRINUSE      =  (WSABASEERR + 48);
  303.     WSAEADDRNOTAVAIL   =  (WSABASEERR + 49);
  304.     WSAENETDOWN        =  (WSABASEERR + 50);
  305.     WSAENETUNREACH     =  (WSABASEERR + 51);
  306.     WSAENETRESET       =  (WSABASEERR + 52);
  307.     WSAECONNABORTED    =  (WSABASEERR + 53);
  308.     WSAECONNRESET      =  (WSABASEERR + 54);
  309.     WSAENOBUFS         =  (WSABASEERR + 55);
  310.     WSAEISCONN         =  (WSABASEERR + 56);
  311.     WSAENOTCONN        =  (WSABASEERR + 57);
  312.     WSAESHUTDOWN       =  (WSABASEERR + 58);
  313.     WSAETOOMANYREFS    =  (WSABASEERR + 59);
  314.     WSAETIMEDOUT       =  (WSABASEERR + 60);
  315.     WSAECONNREFUSED    =  (WSABASEERR + 61);
  316.     WSAELOOP           =  (WSABASEERR + 62);
  317.     WSAENAMETOOLONG    =  (WSABASEERR + 63);
  318.     WSAEHOSTDOWN       =  (WSABASEERR + 64);
  319.     WSAEHOSTUNREACH    =  (WSABASEERR + 65);
  320.     WSAENOTEMPTY       =  (WSABASEERR + 66);
  321.     WSAEPROCLIM        =  (WSABASEERR + 67);
  322.     WSAEUSERS          =  (WSABASEERR + 68);
  323.     WSAEDQUOT          =  (WSABASEERR + 69);
  324.     WSAESTALE          =  (WSABASEERR + 70);
  325.     WSAEREMOTE         =  (WSABASEERR + 71);
  326.  
  327.     WSASYSNOTREADY     =  (WSABASEERR + 91);
  328.     WSAVERNOTSUPPORTED =  (WSABASEERR + 92);
  329.     WSANOTINITIALISED  =  (WSABASEERR + 93);
  330.  
  331.     WSAHOST_NOT_FOUND  =  (WSABASEERR + 1001);
  332.     HOST_NOT_FOUND     =  WSAHOST_NOT_FOUND;
  333.  
  334.     WSATRY_AGAIN       =  (WSABASEERR + 1002);
  335.     TRY_AGAIN          =  WSATRY_AGAIN;
  336.  
  337.     WSANO_RECOVERY     =  (WSABASEERR + 1003);
  338.     NO_RECOVERY        =  WSANO_RECOVERY;
  339.  
  340.     WSANO_DATA         =  (WSABASEERR + 1004);
  341.     NO_DATA            =  WSANO_DATA;
  342.  
  343.     WSANO_ADDRESS      =  WSANO_DATA;
  344.     NO_ADDRESS         =  WSANO_ADDRESS;
  345.  
  346.     EWOULDBLOCK        =  WSAEWOULDBLOCK;
  347.     EINPROGRESS        =  WSAEINPROGRESS;
  348.     EALREADY           =  WSAEALREADY;
  349.     ENOTSOCK           =  WSAENOTSOCK;
  350.     EDESTADDRREQ       =  WSAEDESTADDRREQ;
  351.     EMSGSIZE           =  WSAEMSGSIZE;
  352.     EPROTOTYPE         =  WSAEPROTOTYPE;
  353.     ENOPROTOOPT        =  WSAENOPROTOOPT;
  354.     EPROTONOSUPPORT    =  WSAEPROTONOSUPPORT;
  355.     ESOCKTNOSUPPORT    =  WSAESOCKTNOSUPPORT;
  356.     EOPNOTSUPP         =  WSAEOPNOTSUPP;
  357.     EPFNOSUPPORT       =  WSAEPFNOSUPPORT;
  358.     EAFNOSUPPORT       =  WSAEAFNOSUPPORT;
  359.     EADDRINUSE         =  WSAEADDRINUSE;
  360.     EADDRNOTAVAIL      =  WSAEADDRNOTAVAIL;
  361.     ENETDOWN           =  WSAENETDOWN;
  362.     ENETUNREACH        =  WSAENETUNREACH;
  363.     ENETRESET          =  WSAENETRESET;
  364.     ECONNABORTED       =  WSAECONNABORTED;
  365.     ECONNRESET         =  WSAECONNRESET;
  366.     ENOBUFS            =  WSAENOBUFS;
  367.     EISCONN            =  WSAEISCONN;
  368.     ENOTCONN           =  WSAENOTCONN;
  369.     ESHUTDOWN          =  WSAESHUTDOWN;
  370.     ETOOMANYREFS       =  WSAETOOMANYREFS;
  371.     ETIMEDOUT          =  WSAETIMEDOUT;
  372.     ECONNREFUSED       =  WSAECONNREFUSED;
  373.     ELOOP              =  WSAELOOP;
  374.     ENAMETOOLONG       =  WSAENAMETOOLONG;
  375.     EHOSTDOWN          =  WSAEHOSTDOWN;
  376.     EHOSTUNREACH       =  WSAEHOSTUNREACH;
  377.     ENOTEMPTY          =  WSAENOTEMPTY;
  378.     EPROCLIM           =  WSAEPROCLIM;
  379.     EUSERS             =  WSAEUSERS;
  380.     EDQUOT             =  WSAEDQUOT;
  381.     ESTALE             =  WSAESTALE;
  382.     EREMOTE            =  WSAEREMOTE;
  383.  
  384. type
  385.     PInteger = ^Integer;   {msc}
  386.     PSockAddr = ^SockAddr;
  387.     PSockAddr_In = ^SockAddr_In;
  388.     PLinger = ^Linger;
  389.     PIn_Addr = ^In_Addr;
  390.     PFD_SET = ^FD_SET;
  391.     PHostEnt = ^HostEnt;
  392.     PServEnt = ^ServEnt;
  393.     PProtoEnt = ^ProtoEnt;
  394.  
  395.